There are several examples of computer program utilities that execute commands on another host computer system, such as “rexec” (remote execution), “rsh” (remote shell), or “ssh” (secure shell). Herein, such computer program utilities are termed “shell utilities”. Typically, a command is provided to the shell utility at one host computer system by a user together with the name of another host computer system to be executed on another host computer system. The ability to retrieve the exit status of the command as a return code is desirable. As with any command, if the command is properly executed and completed, a return code may be provided, typically a “0”, to indicate successful completion. In the case of a command completing with an error, the return code will typically be non-zero, and depends on the command, and may indicate the type of error.
A shell utility that executes a command on another host computer system may provide the exit status of the command as the exit status of the shell utility. If the utility encounters an error preventing the command from being executed and the exit status retrieved, it may exit with an exit status value indicating the error. Herein, a return code indicating an error relating to the shell utility itself is termed “return code for shell utility error”, or similar language. To attempt to separate an error with the utility from an error with the command, the return code for shell utility error may be a set value that is different from as many of the command codes as is known by the programmer(s) that created the utility. However, ambiguity occurs if the set value is among the possible exit status values of the remote command.